gcc: fix Hydra builds for bootstrapTools.mips64el-linux-gnuabin32#185284
Conversation
Our gcc builder creates lib64->lib links to ensure that the "primary" libraries for the targetPlatform wind up in $PREFIX/lib. This is required in order for make-bootstrap-files.nix to work correctly. On mips, gcc follows the somewhat awkward IRIX convention of putting mips32 binaries in `lib` and mips64n32 binaries in `lib32`. So we need similar symlinks there. This may come up on other ILP32 platforms as well, so a general-purpose variable name is provided.
On mips, gcc follows the somewhat awkward IRIX convention of putting mips64 binaries in `lib64` and mips64n32 binaries in `lib32`. So on mips64n32 we do not want the `lib64` symlinks.
This commit factors out the conditional which creates the `lib64->lib` symlink in the `preInstall` phase, and calculates its value in nix code rather than bash code so touching it doesn't cause a global rebuild on every platform.
|
Using |
|
Note that the |
|
This Hydra build is the first one to include this PR, so it ought to produce a working bootstrap-files. |
|
Hmm, yes: https://hydra.nixos.org/eval/1777726?filter=mips |
Nice: #188334
When I click the link above, I see the failures, all for attrnames of the form Hydra should never attempt to build Indeed, there are a ton of Hydra failures in this category; I count 17 of them: https://hydra.nixos.org/eval/1777726?filter=.bootstrapTools&compare=1777572&full=#tabs-still-fail I'm preparing a PR to fix this. |
The fix is #188339. |
Description of changes
The Hydra builds for
bootstrapTools.mips64el-linux-gnuabin32.buildare currently failing due tomake-bootstrap-files.nixexpecting to find libraries in$PREFIX/lib, whereas on mips gcc uses the slightly awkward IRIX convention:We already work around a similar problem on x86_64 by creating symlinks from
lib64tolib. This PR disables that workaround ifisMips64n32and enables an analogous workaround to linklib32tolib.Things done
hello)./result/bin/)